
Total number of registered and eligible voters in Florida:
[1] "14,126,722"
Total number of voters participating in the 2018 elections including all types of voters (eg. military vs. civilian) and all types of modes of voting (eg. ED vs. VBM):
[1] "8,355,817"
8,355,817

Total number of registration forms received between the close of the registration for the 2016 General Election and the close of registration for the 2018 General Election:
[1] "6,541,838"
6,541,838

EAVS calculations for Liberty County are consistently inconsistent.



Total number of domestic by-mail ballots transmitted:
[1] "3,499,591"
3,499,591

Note The VBM ‘returned’ mail category includes ballots that counted and ballots that were rejected.
Total number of by-mail ballots that were processed, counted, and included in the canvas of election results:
[1] "2,585,374"
2,585,374
Total number of domestic, civilian by-mail ballots rejected:
[1] "30,540"
30,540


There were 40,144 poll workers on Election Day covering 4,461 polling places statewide. On average, each polling place is allocated 9 pollworkers on Election Day.
But there were 7,847 poll workers during Early Vote covering 373 polling places statewide. On average, each early vote polling place is allocated 21 poll workers on Election Day.
Difficultly in recruiting pollworkers: (1 = very difficult, 2 = somewhat difficult, 3 = neither difficult nor easy, 4 = somewhat easy, 5 = easy, 6 = not enough info to answer)


Total number of provisional ballots:
[1] "13,530"
13,530

Total number of rejected provisional ballots:
[1] "8,291"
8,291
EAVS are not always internally consistent. Florida data has some inconsistencies. In this catergory, Duval County is off by 37, Miami-Dade is off by 16 and Suwannee is off by 1.

Total number of domestic, civilian by-mail ballots rejected:
[1] "30,540"
30,540

LS0tDQp0aXRsZTogIkZsb3JpZGEgVm90aW5nIFJpZ2h0cyAmIEVsZWN0aW9ucyBNZWV0aW5nIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQphdXRob3I6ICJNZWdhbiBHYWxsLCBQaEQ6IG1lZ2FuQGFsbHZvdGluZ2lzbG9jYWwub3JnIg0KZGF0ZTogIkRlY2VtYmVyIDEyLCAyMDE5Ig0KZm9udHNpemU6IDExcHQgDQotLS0NCg0KYGBge3IgZ2xvYmFsX29wdGlvbnMsIGluY2x1ZGUgPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UpDQpsaWJyYXJ5KGdyaWQpDQpsaWJyYXJ5KHBuZykNCmBgYA0KDQoNCjxjZW50ZXI+DQpgYGB7ciwgZmlnLndpZHRoID0gMywgZmlnLmhlaWdodCA9IDF9DQppbWcgPC0gcmVhZFBORygiQzovVXNlcnMvZ2FsbC9EZXNrdG9wL0FsbC1Wb3RpbmctaXMtTG9jYWxfRnVsbENvbG9yX1JCRy5wbmciKQ0KZ3JpZC5yYXN0ZXIoaW1nKQ0KYGBgDQo8L2NlbnRlcj4NCg0KDQoNCg0KYGBge3IsIG91dC53aWR0aCA9ICc3NSUnLCBmaWcuaGVpZ2h0ID0gNiwgZWNobz1GQUxTRX0NCnRtYXBfbW9kZSgidmlldyIpDQp0bV9zaGFwZShjbnR5RGVtbykgKyANCiAgdG1fcG9seWdvbnMoImFpYW4iLCB0aXRsZSA9ICIjIEFtZXJpY2FuIEluZGlhbi9BbGFza2EgTmF0aXZlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAiUHVycGxlcyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSA9IDAuNywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci5jb2wgPSAiZ3JleTMwIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci5hbHBoYSA9IDAuMywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlID0gImplbmtzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gIk5BTUUxMCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3B1cC52YXJzID0gYygiJSBBSUFOIiA9ICJwX2FpYW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiMgQUlBTiIgPSAiYWlhbiIpKSArDQogIHRtX3NoYXBlKEFBKSArIHRtX3BvbHlnb25zKCJibGFjayIsIHRpdGxlID0gIiMgQmxhY2svQWZyaWNhbiBBbWVyaWNhbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWxldHRlID0gIk9yYW5nZXMiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgPSAwLjcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXIuY29sID0gImdyZXkzMCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXIuYWxwaGEgPSAwLjMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSA9ICJqZW5rcyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICJOQU1FMTAiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wdXAudmFycyA9IGMoIiUgQmxhY2siID0gInBfYmxhY2siLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiMgQmxhY2siID0gImJsYWNrIikpICsNCiAgdG1fc2hhcGUoYWlhbnJlcykgKyB0bV9wb2x5Z29ucygib3JhbmdlIiwgYWxwaGEgPSAwLjIsIGlkID0gIk5BTUUiKQ0KYGBgDQoNCg0KVG90YWwgbnVtYmVyIG9mIHJlZ2lzdGVyZWQgYW5kIGVsaWdpYmxlIHZvdGVycyBpbiBGbG9yaWRhOg0KYGBge3J9DQpwcmludChmb3JtYXRDKHN1bShmbC5kZiRyZWdpc3RlcmVkLCBuYS5ybSA9IFQpLCBmb3JtYXQ9ImQiLCBiaWcubWFyaz0iLCIpKQ0KYGBgDQoNClRvdGFsIG51bWJlciBvZiB2b3RlcnMgcGFydGljaXBhdGluZyBpbiB0aGUgMjAxOCBlbGVjdGlvbnMgaW5jbHVkaW5nIGFsbCB0eXBlcyBvZiB2b3RlcnMgKGVnLiBtaWxpdGFyeSB2cy4gY2l2aWxpYW4pIGFuZCBhbGwgdHlwZXMgb2YgbW9kZXMgb2Ygdm90aW5nIChlZy4gRUQgdnMuIFZCTSk6DQpgYGB7cn0NCmZvcm1hdEMoc3VtKGZsLmRmJHBhcnRfdG90YWwsIG5hLnJtID0gVCksIGZvcm1hdD0iZCIsIGJpZy5tYXJrPSIsIikNCmBgYA0KDQoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KZmwucGFydDwtbWVsdChmbC5kZiwgaWQudmFycyA9ICJtYXRjaC5jb3VudHkiLCBtZWFzdXJlLnZhcnMgPSBjKCJwYXJ0X0VkcHAiLCAicGFydF91b2NhdmEiLCAicGFydF9tYWlsIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcnRfcHJvdiIsICJwYXJ0X2V2IiwgInBhcnRfdmJtIikpDQoNCmdncGxvdChmbC5wYXJ0LCBhZXModmFyaWFibGUsIHZhbHVlKSkrDQogICAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpKyANCiAgbGFicyh4ID0gIiIsIHkgPSAiIiwgdGl0bGUgPSAiRUFWUyAyMDE4Iiwgc3VidGl0bGUgPSAiVHlwZXMgb2YgUGFydGljaXBhdGlvbiIpICsNCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSAzMCwgaGp1c3QgPSAxKSkrDQogIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzPWMoInBhcnRfRWRwcCIgPSAiRWxlY3Rpb24gRGF5IFBvbGxpbmcgUGxhY2UiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFydF91b2NhdmEiID0gIlVPQ0FWQSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFydF9tYWlsIiA9ICJWb3RlIGJ5IE1haWwiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFydF9wcm92IiA9ICJQcm92aXNpb25hbCBWb3RlcyIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJ0X2V2IiA9ICJFYXJseSBWb3RlIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcnRfdmJtIiA9ICJWb3RlIGJ5IE1haWwgSnVyaXNkaWN0aW9uIikpKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGFiZWw9Y29tbWEpDQpgYGANCg0KVG90YWwgbnVtYmVyIG9mIHJlZ2lzdHJhdGlvbiBmb3JtcyByZWNlaXZlZCBiZXR3ZWVuIHRoZSBjbG9zZSBvZiB0aGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgMjAxNiBHZW5lcmFsIEVsZWN0aW9uIGFuZCB0aGUgY2xvc2Ugb2YgcmVnaXN0cmF0aW9uIGZvciB0aGUgMjAxOCBHZW5lcmFsIEVsZWN0aW9uOg0KYGBge3J9DQpmb3JtYXRDKHN1bShmbC5kZiRyZWdfdG90YWwsIG5hLnJtID0gVCksIGZvcm1hdD0iZCIsIGJpZy5tYXJrPSIsIikNCmBgYA0KDQoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KDQpmbC5yZWdmb3JtczwtbWVsdChmbC5kZiwgaWQudmFycyA9ICJtYXRjaC5jb3VudHkiLCBtZWFzdXJlLnZhcnMgPSBjKCJyZWdfdmFsaWQiLCAicmVnX3ByZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWdfZHVwIiwgInJlZ19pbnZhbGlkIiwgInJlZ19jaGFuZ2UiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVnX2p1cmlzY2hhbmdlIikpDQoNCmdncGxvdChmbC5yZWdmb3JtcywgYWVzKHZhcmlhYmxlLCB2YWx1ZSkpKw0KICAgIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSsgDQogIGxhYnMoeCA9ICIiLCB5ID0gIiIsIHRpdGxlID0gIkVBVlMgMjAxOCIsIHN1YnRpdGxlID0gIlR5cGVzIG9mIFJlZ2lzdHJhdGlvbiBGb3JtcyBSZWNlaXZlZCBCZXR3ZWVuIDIwMTYgJiAyMDE4IikgKw0KICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDMwLCBoanVzdCA9IDEpKSsNCiAgc2NhbGVfeF9kaXNjcmV0ZShsYWJlbHM9YygicmVnX3ZhbGlkIiA9ICJWYWxpZCIsICJyZWdfcHJlIiA9ICJQcmUtcmVnaXN0cmF0aW9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWdfZHVwIiA9ICJEdXBsaWNhdGVzIiwgInJlZ19pbnZhbGlkIiA9ICJJbnZhbGlkIiwgInJlZ19jaGFuZ2UiID0gIlJlZ2lzdHJhdGlvbiBDaGFuZ2UiLCAicmVnX2p1cmlzY2hhbmdlIiA9ICJKdXJpc2RpY3Rpb24gQ2hhbmdlIikpKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGFiZWw9Y29tbWEpDQpgYGANCg0KRUFWUyBjYWxjdWxhdGlvbnMgZm9yIExpYmVydHkgQ291bnR5IGFyZSBjb25zaXN0ZW50bHkgaW5jb25zaXN0ZW50LiANCg0KYGBge3IsIGVjaG89RkFMU0V9DQpmbC5mb3JtczwtbWVsdChmbC5kZiwgaWQudmFycyA9ICJtYXRjaC5jb3VudHkiLCBtZWFzdXJlLnZhcnMgPSBjKCJmb3Jtc19tYWlsIiwgImZvcm1zX2lucGVyc29uIiwgImZvcm1zX29ubGluZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3Jtc19kbXYiLCAiZm9ybXNfbnZyYSIsICJmb3Jtc19kaXNhYmlsaXR5IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvcm1zX2FybWVkZm9yY2UiLCAiZm9ybXNfbm9uTlZSQSIsICJmb3Jtc19kcml2ZXMiKSkNCg0KZ2dwbG90KGZsLmZvcm1zLCBhZXModmFyaWFibGUsIHZhbHVlKSkrDQogICAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpKyANCiAgbGFicyh4ID0gIiIsIHkgPSAiIiwgdGl0bGUgPSAiRUFWUyAyMDE4Iiwgc3VidGl0bGUgPSAiVG90YWwgUmVnaXN0cmF0aW9uIEZvcm1zIGJ5IFNvdXJjZSIpICsNCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSAzMCwgaGp1c3QgPSAxKSkrDQogIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzPWMoImZvcm1zX21haWwiID0gIkJ5IE1haWwiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9ybXNfaW5wZXJzb24iID0gIkluIFBlcnNvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvcm1zX29ubGluZSIgPSAiT25saW5lIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvcm1zX2RtdiIgPSAiRE1WIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvcm1zX252cmEiID0gIk5WUkEgTWFuZGF0ZWQgQWdlbmNpZXMiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9ybXNfZGlzYWJpbGl0eSIgPSAiQWdlbmNpZXMgc2VydmluZyBEaXNhYmxlZCBQZW9wbGUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3Jtc19hcm1lZGZvcmNlIiA9ICJBcm1lZCBGb3JjZXMiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9ybXNfbm9uTlZSQSIgPSAiTm9uLU5WUkEgTWFuZGF0ZWQgQWdlbmNpZXMiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9ybXNfZHJpdmVzIiA9ICJSZWdpc3RyYXRpb24gRHJpdmVzIikpKw0KICAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcz1wcmV0dHlfYnJlYWtzKG49MTApLCBsYWJlbD1jb21tYSkNCg0KDQpgYGANCg0KYGBge3IsIGVjaG89RkFMU0V9DQpmbC5kdXA8LW1lbHQoZmwuZGYsIGlkLnZhcnMgPSAibWF0Y2guY291bnR5IiwgbWVhc3VyZS52YXJzID0gYygiZHVwX21haWwiLCAiZHVwX2lucGVyc29uIiwgImR1cF9vbmxpbmUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZHVwX2RtdiIsICJkdXBfTlZSQSIsICJkdXBfZGlzYWJpbGl0eSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkdXBfYXJtZWRmb3JjZSIsICJkdXBfbm9uTlZSQSIsICJkdXBfZHJpdmUiKSkNCg0KZ2dwbG90KGZsLmR1cCwgYWVzKHZhcmlhYmxlLCB2YWx1ZSkpKw0KICAgIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSsgDQogIGxhYnMoeCA9ICIiLCB5ID0gIiIsIHRpdGxlID0gIkVBVlMgMjAxOCIsIHN1YnRpdGxlID0gIkR1cGxpY2F0ZSBSZWdpc3RyYXRpb24gRm9ybXMgYnkgU291cmNlIikgKw0KICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDMwLCBoanVzdCA9IDEpKSsNCiAgc2NhbGVfeF9kaXNjcmV0ZShsYWJlbHM9YygiZHVwX21haWwiID0gIkJ5IE1haWwiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZHVwX2lucGVyc29uIiA9ICJJbiBQZXJzb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkdXBfb25saW5lIiA9ICJPbmxpbmUiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZHVwX2RtdiIgPSAiRE1WIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImR1cF9OVlJBIiA9ICJOVlJBIE1hbmRhdGVkIEFnZW5jaWVzIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImR1cF9kaXNhYmlsaXR5IiA9ICJBZ2VuY2llcyBzZXJ2aW5nIERpc2FibGVkIFBlb3BsZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImR1cF9hcm1lZGZvcmNlIiA9ICJBcm1lZCBGb3JjZXMiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZHVwX25vbk5WUkEiID0gIk5vbi1OVlJBIE1hbmRhdGVkIEFnZW5jaWVzIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImR1cF9kcml2ZSIgPSAiUmVnaXN0cmF0aW9uIERyaXZlcyIpKSsNCiAgIHNjYWxlX3lfY29udGludW91cyhicmVha3M9cHJldHR5X2JyZWFrcyhuPTEwKSwgbGFiZWw9Y29tbWEpDQpgYGANCg0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCmZsLmludjwtbWVsdChmbC5kZiwgaWQudmFycyA9ICJtYXRjaC5jb3VudHkiLCBtZWFzdXJlLnZhcnMgPSBjKCJpbnZfbWFpbCIsICJpbnZfaW5wZXJzb24iLCAiaW52X29ubGluZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnZfZG12IiwgImludl9udnJhIiwgImludl9kaXNhYmlsaXR5IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludl9hcm1lZGZvcmNlIiwgImludl9ub25OVlJBIiwgImludl9kcml2ZXMiKSkNCg0KZ2dwbG90KGZsLmludiwgYWVzKHZhcmlhYmxlLCB2YWx1ZSkpKw0KICAgIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSsgDQogIGxhYnMoeCA9ICIiLCB5ID0gIiIsIHRpdGxlID0gIkVBVlMgMjAxOCIsIHN1YnRpdGxlID0gIkludmFsaWQgb3IgUmVqZWN0ZWQgUmVnaXN0cmF0aW9ucyBieSBTb3VyY2UiKSArDQogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gMzAsIGhqdXN0ID0gMSkpKw0KICAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcz1wcmV0dHlfYnJlYWtzKG49MTApLCBsYWJlbD1jb21tYSkrDQogICAgc2NhbGVfeF9kaXNjcmV0ZShsYWJlbHM9YygiaW52X21haWwiID0gIkJ5IE1haWwiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW52X2lucGVyc29uIiA9ICJJbiBQZXJzb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnZfb25saW5lIiA9ICJPbmxpbmUiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW52X2RtdiIgPSAiRE1WIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImludl9udnJhIiA9ICJOVlJBIE1hbmRhdGVkIEFnZW5jaWVzIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImludl9kaXNhYmlsaXR5IiA9ICJBZ2VuY2llcyBzZXJ2aW5nIERpc2FibGVkIFBlb3BsZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImludl9hcm1lZGZvcmNlIiA9ICJBcm1lZCBGb3JjZXMiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW52X25vbk5WUkEiID0gIk5vbi1OVlJBIE1hbmRhdGVkIEFnZW5jaWVzIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImludl9kcml2ZXMiID0gIlJlZ2lzdHJhdGlvbiBEcml2ZXMiKSkNCmBgYA0KDQoNCg0KVG90YWwgbnVtYmVyIG9mIGRvbWVzdGljIGJ5LW1haWwgYmFsbG90cyB0cmFuc21pdHRlZDoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KZm9ybWF0QyhzdW0oZmwuZGYkdmJtX3RvdGFsLCBuYS5ybSA9IFQpLCBmb3JtYXQ9ImQiLCBiaWcubWFyaz0iLCIpDQpgYGANCg0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCmZsLnZibTwtbWVsdChmbC5kZiwgaWQudmFycyA9ICJtYXRjaC5jb3VudHkiLCBtZWFzdXJlLnZhcnMgPSBjKCJ2Ym1fcmV0dXJuZWQiLCAidmJtX3VuZGVsaXZlcmVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZibV92b2lkIiwgInZibV9wcm92IiwgInZibV9zdGF0dW5rbm93biIpKQ0KDQpnZ3Bsb3QoZmwudmJtLCBhZXModmFyaWFibGUsIHZhbHVlKSkrDQogICAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpKyANCiAgbGFicyh4ID0gIiIsIHkgPSAiIiwgdGl0bGUgPSAiRUFWUyAyMDE4Iiwgc3VidGl0bGUgPSAiQ2F0ZWdvcmllcyBvZiBWQk0gQmFsbG90cyIpICsNCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSAzMCwgaGp1c3QgPSAxKSkrDQogICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzPXByZXR0eV9icmVha3Mobj01KSwgbGFiZWw9Y29tbWEpKw0KICAgIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzPWMoInZibV9yZXR1cm5lZCIgPSAiQmFsbG90IFJldHVybmVkIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInZibV91bmRlbGl2ZXJlZCIgPSAiQmFsbG90IFVuZGVsaXZlcmFibGUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2Ym1fdm9pZCIgPSAiQmFsbG90IFZvaWRlZCIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2Ym1fcHJvdiIgPSAiUHJvdmlzaW9uYWwiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmJtX3N0YXR1bmtub3duIiA9ICJTdGF0dXMgVW5rbm93biIpKQ0KYGBgDQoNCioqTm90ZSoqIFRoZSBWQk0gJ3JldHVybmVkJyBtYWlsIGNhdGVnb3J5IGluY2x1ZGVzIGJhbGxvdHMgdGhhdCBjb3VudGVkIGFuZCBiYWxsb3RzIHRoYXQgd2VyZSByZWplY3RlZC4gDQoNClRvdGFsIG51bWJlciBvZiBieS1tYWlsIGJhbGxvdHMgdGhhdCB3ZXJlIHByb2Nlc3NlZCwgY291bnRlZCwgYW5kIGluY2x1ZGVkIGluIHRoZSBjYW52YXMgb2YgZWxlY3Rpb24gcmVzdWx0czoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KZm9ybWF0QyhzdW0oZmwuZGYkbWFpbF90b3RhbCwgbmEucm0gPSBUKSwgZm9ybWF0PSJkIiwgYmlnLm1hcms9IiwiKQ0KYGBgDQoNCg0KVG90YWwgbnVtYmVyIG9mIGRvbWVzdGljLCBjaXZpbGlhbiBieS1tYWlsIGJhbGxvdHMgcmVqZWN0ZWQ6DQpgYGB7ciwgZWNobz1GQUxTRX0NCmZvcm1hdEMoc3VtKGZsLmRmJG1haWxfcmVqZWN0ZWQsIG5hLnJtID0gVCksIGZvcm1hdD0iZCIsIGJpZy5tYXJrPSIsIikNCmBgYA0KDQoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KZmwucmVqPC1tZWx0KGZsLmRmLCBpZC52YXJzID0gIm1hdGNoLmNvdW50eSIsIG1lYXN1cmUudmFycyA9IGMoInJlal9kZWFkbGluZSIsICJyZWpfdm90ZXJzaWciLCAicmVqX3dpdHNpZyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWpfbm9tYXRjaCIsICJyZWpfRW9zaWciLCAicmVqX2VudiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWpfbWlzc2luZyIsICJyZWpfdW5zZWFsZWQiLCAicmVqX25vYWRkeSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVqX211bHRpcGxlIiwgInJlal9kZWNlYXNlZCIsICJyZWpfdm90ZWQiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWpfbm9JRCIsICJyZWpfbm9hcHAiKSkNCg0KZ2dwbG90KGZsLnJlaiwgYWVzKHZhcmlhYmxlLCB2YWx1ZSkpKw0KICAgIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSsgDQogIGxhYnMoeCA9ICIiLCB5ID0gIiIsIHRpdGxlID0gIkVBVlMgMjAxOCIsIHN1YnRpdGxlID0gIlJlamVjdGVkIGJ5LW1haWwgYmFsbG90cyBieSByZWplY3Rpb24gdHlwZSIpICsNCiAgICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDMwLCBoanVzdCA9IDEpKSsNCiAgIHNjYWxlX3lfY29udGludW91cyhicmVha3M9cHJldHR5X2JyZWFrcyhuPTUpLCBsYWJlbD1jb21tYSkrDQogICAgc2NhbGVfeF9kaXNjcmV0ZShsYWJlbHM9YygicmVqX2RlYWRsaW5lIiA9ICJNaXNzZWQgRGVhZGxpbmUiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVqX3ZvdGVyc2lnIiA9ICJObyBWb3RlciBTaWduYXR1cmUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWpfd2l0c2lnIiA9ICJObyBXaXRuZXNzIFNpZ25hdHVyZSIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWpfbm9tYXRjaCIgPSAiTm9uLW1hdGNoaW5nIFNpZ25hdHVyZSIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWpfRW9zaWciID0gIk5vIEVPIFNpZ25hdHVyZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlal9lbnYiID0gIlVub2ZmaWNpYWwgRW52ZWxvcGUiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVqX21pc3NpbmciID0gIk1pc3NpbmcgZnJvbSBFbnZlbG9wZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlal91bnNlYWxlZCIgPSAiRW52ZWxvcGUgVW5zZWFsZWQiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVqX25vYWRkeSIgPSAiTm8gQWRkcmVzcyIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWpfbXVsdGlwbGUiID0gIk1hbnkgQmFsbG90cywgMSBFbnZlbG9wZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlal9kZWNlYXNlZCIgPSAiVm90ZXIgRGVjZWFzZWQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWpfdm90ZWQiID0gIlZvdGVyIFZvdGVkIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlal9ub0lEIiA9ICIxc3QgVGltZSBWb3RlciAtIE5vIElEIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlal9ub2FwcCIgPSAiTm8gQXBwbGljYXRpb24gRm91bmQiKSkNCmBgYA0KDQoNCg0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCmZsLmVkcHA8LW1lbHQoZmwuZGYsIGlkLnZhcnMgPSAibWF0Y2guY291bnR5IiwgbWVhc3VyZS52YXJzID0gYygidG9fcHBFRCIsICJ0b19FViIpKQ0KDQpnZ3Bsb3QoZmwuZWRwcCwgYWVzKHZhcmlhYmxlLCB2YWx1ZSkpKw0KICAgIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSsgDQogIGxhYnMoeCA9ICIiLCB5ID0gIiIsIHRpdGxlID0gIkVBVlMgMjAxOCIsIHN1YnRpdGxlID0gIlRvdGFsIFR1cm5vdXQ6IEVhcmx5IFZvdGUgdnMuIEVsZWN0aW9uIERheSIpICsgICAgDQogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gMzAsIGhqdXN0ID0gMSkpKw0KICAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcz1wcmV0dHlfYnJlYWtzKG49NSksIGxhYmVsPWNvbW1hKSsNCiAgICBzY2FsZV94X2Rpc2NyZXRlKGxhYmVscz1jKCJ0b19wcEVEIiA9ICJUdXJub3V0IEVEIFBvbGxpbmcgUGxhY2VzIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInRvX0VWIiA9ICJUdXJub3V0IEVhcmx5IFZvdGluZyIpKQ0KYGBgDQoNCg0KVGhlcmUgd2VyZSA0MCwxNDQgcG9sbCB3b3JrZXJzIG9uIEVsZWN0aW9uIERheSBjb3ZlcmluZyA0LDQ2MSBwb2xsaW5nIHBsYWNlcyBzdGF0ZXdpZGUuIE9uIGF2ZXJhZ2UsIGVhY2ggcG9sbGluZyBwbGFjZSBpcyBhbGxvY2F0ZWQgOSBwb2xsd29ya2VycyBvbiBFbGVjdGlvbiBEYXkuDQoNCkJ1dCB0aGVyZSB3ZXJlIDcsODQ3IHBvbGwgd29ya2VycyBkdXJpbmcgRWFybHkgVm90ZSBjb3ZlcmluZyAzNzMgcG9sbGluZyBwbGFjZXMgc3RhdGV3aWRlLiBPbiBhdmVyYWdlLCBlYWNoIGVhcmx5IHZvdGUgcG9sbGluZyBwbGFjZSBpcyBhbGxvY2F0ZWQgMjEgcG9sbCB3b3JrZXJzIG9uIEVsZWN0aW9uIERheS4NCg0KRGlmZmljdWx0bHkgaW4gcmVjcnVpdGluZyBwb2xsd29ya2VyczoNCioqKigxID0gdmVyeSBkaWZmaWN1bHQsIDIgPSBzb21ld2hhdCBkaWZmaWN1bHQsIDMgPSBuZWl0aGVyIGRpZmZpY3VsdCBub3IgZWFzeSwgNCA9IHNvbWV3aGF0IGVhc3ksIDUgPSBlYXN5LCA2ID0gbm90IGVub3VnaCBpbmZvIHRvIGFuc3dlcikqKioNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KZmwucHc8LW1lbHQoZmwuZGYsIGlkLnZhcnMgPSAibWF0Y2guY291bnR5IiwgbWVhc3VyZS52YXJzID0gYygicHdfcmVjcnVpdG1lbnQiKSkNCg0KICBnZ3Bsb3QoZmwucHcsIGFlcyh4ID0gcmVvcmRlcihtYXRjaC5jb3VudHksIHZhbHVlKSwgdmFsdWUpKSsNCiAgICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikrDQogICB0aGVtZShheGlzLnRpdGxlLng9ZWxlbWVudF9ibGFuaygpLCANCiAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gOTAsIGhqdXN0ID0gMSksDQogICAgICAgICBheGlzLnRpdGxlLnk9ZWxlbWVudF9ibGFuaygpKSsNCiAgIHNjYWxlX3lfY29udGludW91cyhicmVha3M9cHJldHR5X2JyZWFrcyhuPTUpKQ0KYGBgDQoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KZmwucHc8LW1lbHQoZmwuZGYsIGlkLnZhcnMgPSAibWF0Y2guY291bnR5IiwgbWVhc3VyZS52YXJzID0gYygicHdfMTgiLCAicHdfMThfMjUiLCAicHdfMjZfNDAiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHdfNDFfNjAiLCAicHdfNjFfNzAiLCAicHdfNzEiKSkNCg0KZ2dwbG90KGZsLnB3LCBhZXModmFyaWFibGUsIHZhbHVlKSkrDQogICAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpKyANCiAgbGFicyh4ID0gIiIsIHkgPSAiIiwgdGl0bGUgPSAiRUFWUyAyMDE4Iiwgc3VidGl0bGUgPSAiUG9sbCBXb3JrZXJzIGJ5IEFnZSIpICsNCiAgICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDMwLCBoanVzdCA9IDEpKSsNCiAgIHNjYWxlX3lfY29udGludW91cyhicmVha3M9cHJldHR5X2JyZWFrcyhuPTUpLCBsYWJlbD1jb21tYSkrDQogICAgc2NhbGVfeF9kaXNjcmV0ZShsYWJlbHM9YygicHdfMTgiID0gIjE4IFllYXJzIE9sZCIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwd18xOF8yNSIgPSAiMTktMjUgWWVhcnMgT2xkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHdfMjZfNDAiID0gIjI2LTQwIFllYXJzIE9sZCIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwd180MV82MCIgPSAiNDEtNjAgWWVhcnMgT2xkIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInB3XzYxXzcwIiA9ICI2MS03MCBZZWFycyBPbGQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwd183MSIgPSAiNzEgWWVhcnMgb3IgT2xkZXIiKSkNCmBgYA0KDQoNCg0KVG90YWwgbnVtYmVyIG9mIHByb3Zpc2lvbmFsIGJhbGxvdHM6DQpgYGB7ciwgZWNobz1GQUxTRX0NCmZvcm1hdEMoc3VtKGZsLmRmJHByb3ZfdG90YWwsIG5hLnJtID0gVCksIGZvcm1hdD0iZCIsIGJpZy5tYXJrPSIsIikNCg0KYGBgDQoNCg0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCmZsLnByb3Y8LW1lbHQoZmwuZGYsIGlkLnZhcnMgPSAibWF0Y2guY291bnR5IiwgbWVhc3VyZS52YXJzID0gYygicHJvdl9GdWxsQ291bnRlZCIsICJwcm92X1BhcnRDb3VudGVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvdl9yZWplY3RlZCIpKQ0KDQpnZ3Bsb3QoZmwucHJvdiwgYWVzKHZhcmlhYmxlLCB2YWx1ZSkpKw0KICAgIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSsgDQogIGxhYnMoeCA9ICIiLCB5ID0gIiIsIHRpdGxlID0gIkVBVlMgMjAxOCIsIHN1YnRpdGxlID0gIlByb3Zpc2lvbmFsIEJhbGxvdHMgYnkgRGlzcG9zaXRpb24iKSArDQogICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSAzMCwgaGp1c3QgPSAxKSkrDQogICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzPXByZXR0eV9icmVha3Mobj01KSwgbGFiZWw9Y29tbWEpKw0KICAgIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzPWMoInByb3ZfRnVsbENvdW50ZWQiID0gIkZ1bGx5IENvdW50ZWQiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvdl9QYXJ0Q291bnRlZCIgPSAiUGFydGlhbGx5IENvdW50ZWQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm92X3JlamVjdGVkIiA9ICJSZWplY3RlZCIpKQ0KYGBgDQoNClRvdGFsIG51bWJlciBvZiByZWplY3RlZCBwcm92aXNpb25hbCBiYWxsb3RzOg0KYGBge3IsIGVjaG89RkFMU0V9DQpmb3JtYXRDKHN1bShmbC5kZiRwcmVqX3RvdCwgbmEucm0gPSBUKSwgZm9ybWF0PSJkIiwgYmlnLm1hcms9IiwiKQ0KDQpgYGANCg0KRUFWUyBhcmUgbm90IGFsd2F5cyBpbnRlcm5hbGx5IGNvbnNpc3RlbnQuIEZsb3JpZGEgZGF0YSBoYXMgc29tZSBpbmNvbnNpc3RlbmNpZXMuIEluIHRoaXMgY2F0ZXJnb3J5LCBEdXZhbCBDb3VudHkgaXMgb2ZmIGJ5IDM3LCBNaWFtaS1EYWRlIGlzIG9mZiBieSAxNiBhbmQgU3V3YW5uZWUgaXMgb2ZmIGJ5IDEuDQoNCg0KYGBge3IsIGVjaG89RkFMU0V9DQpmbC5wcmVqPC1tZWx0KGZsLmRmLCBpZC52YXJzID0gIm1hdGNoLmNvdW50eSIsIG1lYXN1cmUudmFycyA9IGMoInByZWpfbm90cmVnIiwgInByZWpfanVyaXMiLCAicHJlal9wcmVjaW5jdCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmVqX25vSUQiLCAicHJlal9pbmNvbXBsZXRlIiwgInByZWpfbWlzc2luZyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmVqX25vc2lnIiwgInByZWpfbWlzbWF0Y2giLCAicHJlal92b3RlZCIpKQ0KDQpnZ3Bsb3QoZmwucHJlaiwgYWVzKHZhcmlhYmxlLCB2YWx1ZSkpKw0KICAgIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSsgDQogIGxhYnMoeCA9ICIiLCB5ID0gIiIsIHRpdGxlID0gIkVBVlMgMjAxOCIsIHN1YnRpdGxlID0gIlJlamVjdGVkIHByb3Zpc2lvbmFsIGJhbGxvdHMgYnkgcmVqZWN0aW9uIHR5cGUiKSArDQogICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSAzMCwgaGp1c3QgPSAxKSkrDQogICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzPXByZXR0eV9icmVha3Mobj01KSwgbGFiZWw9Y29tbWEpKw0KICAgIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzPWMoInByZWpfbm90cmVnIiA9ICJOb3QgUmVnaXN0ZXJlZCBpbiBTdGF0ZSIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmVqX2p1cmlzIiA9ICJJbiBXcm9uZyBKdXJpc2RpY3Rpb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmVqX3ByZWNpbmN0IiA9ICJJbiBXcm9uZyBQcmVjaW5jdCIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmVqX25vSUQiID0gIkluc3VmZmljaWVudCBJRCIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmVqX2luY29tcGxldGUiID0gIkJhbGxvdCBJbmNvbXBsZXRlIG9yIElsbGVnaWJsZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInByZWpfbWlzc2luZyIgPSAiQmFsbG90IE1pc3NpbmcgZnJvbSBFbnZlbG9wZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInByZWpfbm9zaWciID0gIk5vIFZvdGVyIFNpZ25hdHVyZSIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmVqX21pc21hdGNoIiA9ICJOb24tbWF0Y2hpbmcgU2lnbmF0dXJlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJlal92b3RlZCIgPSAiQWxyZWFkeSBWb3RlZCIpKQ0KYGBgDQoNCg0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCnJ0PC1nZ3Bsb3QoZmwuZGYsIGFlcyh4ID0gcmVvcmRlcihjb3VudHksIHJlZ190b3RhbCksIHJlZ190b3RhbCwgY291bnR5PWNvdW50eSwgIlJlZ2lzdHJhdGlvbiBUb3RhbCI9cmVnX3RvdGFsKSkrDQogICAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpICsNCiAgICBsYWJzKHggPSAiIiwgeSA9ICIiLCB0aXRsZSA9ICJUb3RhbCBSZWdpc3RyYXRpb24iKSArDQogICAgc2NhbGVfZmlsbF9pZGVudGl0eSgpKw0KICAgIHRoZW1lKHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICdncmF5OTUnKSwgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxLCBzaXplID0gNikpKw0KICAgIGdlb21faGxpbmUoeWludGVyY2VwdD1tZWRpYW4oZmwuZGYkcmVnX3RvdGFsLCBuYS5ybSA9IFQpLCBjb2xvcj0iYmxhY2siLCBsaW5ldHlwZT0iZGFzaGVkIikrDQogICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzPXByZXR0eV9icmVha3Mobj01KSwgbGFiZWw9Y29tbWEpKw0KICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQ9bWVhbihmbC5kZiRyZWdfdG90YWwsIG5hLnJtID0gVCksIGNvbG9yPSJkZWVwc2t5Ymx1ZTQiLCBsaW5ldHlwZT0ic29saWQiKQ0KDQpnZ3Bsb3RseShydCwgdG9vbHRpcCA9IGMoImNvdW50eSIsICJyZWdfdG90YWwiLCB3aWR0aCA9IDc5MCwgaGVpZ2h0ID0gNDc1KSkNCmBgYA0KDQoNCg0KYGBge3IsIGVjaG89RkFMU0V9DQpyaTwtZ2dwbG90KGZsLmRmLCBhZXMoeCA9IHJlb3JkZXIoY291bnR5LCByZWdfaW52YWxpZCksIHJlZ19pbnZhbGlkLCBjb3VudHk9Y291bnR5LCAiSW52YWxpZCBSZWdpc3RyYXRpb24iPXJlZ19pbnZhbGlkKSkrDQogICAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpICsNCiAgICBsYWJzKHggPSAiIiwgeSA9ICIiLCB0aXRsZSA9ICJJbnZhbGlkIFJlZ2lzdHJhdGlvbiIpICsNCiAgICBzY2FsZV9maWxsX2lkZW50aXR5KCkrDQogICAgdGhlbWUocGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gJ2dyYXk5NScpLCBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDkwLCBoanVzdCA9IDEsIHNpemUgPSA2KSkrDQogICAgZ2VvbV9obGluZSh5aW50ZXJjZXB0PW1lZGlhbihmbC5kZiRyZWdfaW52YWxpZCwgbmEucm0gPSBUKSwgY29sb3I9ImJsYWNrIiwgbGluZXR5cGU9ImRhc2hlZCIpKw0KICAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcz1wcmV0dHlfYnJlYWtzKG49NSksIGxhYmVsPWNvbW1hKSsNCiAgZ2VvbV9obGluZSh5aW50ZXJjZXB0PW1lYW4oZmwuZGYkcmVnX2ludmFsaWQsIG5hLnJtID0gVCksIGNvbG9yPSJkZWVwc2t5Ymx1ZTQiLCBsaW5ldHlwZT0ic29saWQiKQ0KDQpnZ3Bsb3RseShyaSwgdG9vbHRpcCA9IGMoImNvdW50eSIsICJyZWdfaW52YWxpZCIsIHdpZHRoID0gNzkwLCBoZWlnaHQgPSA0NzUpKQ0KYGBgDQoNCg0KYGBge3IsIGVjaG89RkFMU0V9DQpyaTwtZ2dwbG90KGZsLmRmLCBhZXMoeCA9IHJlb3JkZXIoY291bnR5LCByZWdfZG12KSwgcmVnX2RtdiwgY291bnR5PWNvdW50eSwgIkRNViBSZWdpc3RyYXRpb25zIj1yZWdfZG12KSkrDQogICAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpICsNCiAgICBsYWJzKHggPSAiIiwgeSA9ICIiLCB0aXRsZSA9ICJETVYgUmVnaXN0cmF0aW9ucyIpICsNCiAgICBzY2FsZV9maWxsX2lkZW50aXR5KCkrDQogICAgdGhlbWUocGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gJ2dyYXk5NScpLCBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDkwLCBoanVzdCA9IDEsIHNpemUgPSA2KSkrDQogICAgZ2VvbV9obGluZSh5aW50ZXJjZXB0PW1lZGlhbihmbC5kZiRyZWdfZG12LCBuYS5ybSA9IFQpLCBjb2xvcj0iYmxhY2siLCBsaW5ldHlwZT0iZGFzaGVkIikrDQogICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzPXByZXR0eV9icmVha3Mobj01KSwgbGFiZWw9Y29tbWEpKw0KICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQ9bWVhbihmbC5kZiRyZWdfZG12LCBuYS5ybSA9IFQpLCBjb2xvcj0iZGVlcHNreWJsdWU0IiwgbGluZXR5cGU9InNvbGlkIikNCg0KZ2dwbG90bHkocmksIHRvb2x0aXAgPSBjKCJjb3VudHkiLCAicmVnX2RtdiIsIHdpZHRoID0gNzkwLCBoZWlnaHQgPSA0NzUpKQ0KYGBgDQoNCg0KYGBge3IsIGVjaG89RkFMU0V9DQpyZDwtZ2dwbG90KGZsLmRmLCBhZXMoeCA9IHJlb3JkZXIoY291bnR5LCByZWdfZHJpdmVzKSwgcmVnX2RyaXZlcywgY291bnR5PWNvdW50eSwgIlJlZyBEcml2ZXMiPXJlZ19kcml2ZXMpKSsNCiAgICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKw0KICAgIGxhYnMoeCA9ICIiLCB5ID0gIiIsIHRpdGxlID0gIlJlZ2lzdHJhdGlvbiBEcml2ZXMiKSArDQogICAgc2NhbGVfZmlsbF9pZGVudGl0eSgpKw0KICAgIHRoZW1lKHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICdncmF5OTUnKSwgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxLCBzaXplID0gNikpKw0KICAgIGdlb21faGxpbmUoeWludGVyY2VwdD1tZWRpYW4oZmwuZGYkcmVnX2RyaXZlcywgbmEucm0gPSBUKSwgY29sb3I9ImJsYWNrIiwgbGluZXR5cGU9ImRhc2hlZCIpKw0KICAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcz1wcmV0dHlfYnJlYWtzKG49NSksIGxhYmVsPWNvbW1hKSsNCiAgZ2VvbV9obGluZSh5aW50ZXJjZXB0PW1lYW4oZmwuZGYkcmVnX2RyaXZlcywgbmEucm0gPSBUKSwgY29sb3I9ImRlZXBza3libHVlNCIsIGxpbmV0eXBlPSJzb2xpZCIpDQoNCmdncGxvdGx5KHJkLCB0b29sdGlwID0gYygiY291bnR5IiwgInJlZ19kcml2ZXMiLCB3aWR0aCA9IDc5MCwgaGVpZ2h0ID0gNDc1KSkNCmBgYA0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCnZ0PC1nZ3Bsb3QoZmwuZGYsIGFlcyh4ID0gcmVvcmRlcihjb3VudHksIHZibV90b3RhbCksIHZibV90b3RhbCwgY291bnR5PWNvdW50eSwgIlZCTSBUb3RhbCI9dmJtX3RvdGFsKSkrDQogICAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpICsNCiAgICBsYWJzKHggPSAiIiwgeSA9ICIiLCB0aXRsZSA9ICJUb3RhbCBWQk0gQmFsbG90cyIpICsNCiAgICBzY2FsZV9maWxsX2lkZW50aXR5KCkrDQogICAgdGhlbWUocGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gJ2dyYXk5NScpLCBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDkwLCBoanVzdCA9IDEsIHNpemUgPSA2KSkrDQogICAgZ2VvbV9obGluZSh5aW50ZXJjZXB0PW1lZGlhbihmbC5kZiR2Ym1fdG90YWwsIG5hLnJtID0gVCksIGNvbG9yPSJibGFjayIsIGxpbmV0eXBlPSJkYXNoZWQiKSsNCiAgIHNjYWxlX3lfY29udGludW91cyhicmVha3M9cHJldHR5X2JyZWFrcyhuPTUpLCBsYWJlbD1jb21tYSkrDQogIGdlb21faGxpbmUoeWludGVyY2VwdD1tZWFuKGZsLmRmJHZibV90b3RhbCwgbmEucm0gPSBUKSwgY29sb3I9ImRlZXBza3libHVlNCIsIGxpbmV0eXBlPSJzb2xpZCIpDQoNCmdncGxvdGx5KHZ0LCB0b29sdGlwID0gYygiY291bnR5IiwgInZibV90b3RhbCIpLCB3aWR0aCA9IDc5MCwgaGVpZ2h0ID0gNDc1KQ0KDQoNCmBgYA0KDQoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KdnI8LWdncGxvdChmbC5kZiwgYWVzKHggPSByZW9yZGVyKGNvdW50eSwgcC52Ym1fcmV0dXJuZWQpLCBwLnZibV9yZXR1cm5lZCwgY291bnR5PWNvdW50eSwgIlJlZyBEcml2ZXMiPXAudmJtX3JldHVybmVkKSkrDQogICAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpICsNCiAgICBsYWJzKHggPSAiIiwgeSA9ICIiLCB0aXRsZSA9ICJQZXJjZW50YWdlIFZCTSBCYWxsb3RzIFJldHVybmVkIikgKw0KICAgIHNjYWxlX2ZpbGxfaWRlbnRpdHkoKSsNCiAgICB0aGVtZShwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGZpbGwgPSAnZ3JheTk1JyksIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gOTAsIGhqdXN0ID0gMSwgc2l6ZSA9IDYpKSsNCiAgICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQ9bWVkaWFuKGZsLmRmJHAudmJtX3JldHVybmVkLCBuYS5ybSA9IFQpLCBjb2xvcj0iYmxhY2siLCBsaW5ldHlwZT0iZGFzaGVkIikrDQogICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzPXByZXR0eV9icmVha3Mobj01KSwgbGFiZWw9Y29tbWEpKw0KICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQ9bWVhbihmbC5kZiRwLnZibV9yZXR1cm5lZCwgbmEucm0gPSBUKSwgY29sb3I9ImRlZXBza3libHVlNCIsIGxpbmV0eXBlPSJzb2xpZCIpDQoNCmdncGxvdGx5KHZyLCB0b29sdGlwID0gYygiY291bnR5IiwgInAudmJtX3JldHVybmVkIiksIHdpZHRoID0gNzkwLCBoZWlnaHQgPSA0NzUpDQoNCg0KYGBgDQoNCg0KDQoNCg0KYGBge3IsIGVjaG89RkFMU0V9DQp2dTwtZ2dwbG90KGZsLmRmLCBhZXMoeCA9IHJlb3JkZXIoY291bnR5LCBwLnZibV91bmRlbGl2ZXJlZCksIHAudmJtX3VuZGVsaXZlcmVkLCBjb3VudHk9Y291bnR5LCAiUmVnIERyaXZlcyI9cC52Ym1fdW5kZWxpdmVyZWQpKSsNCiAgICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKw0KICAgIGxhYnMoeCA9ICIiLCB5ID0gIiIsIHRpdGxlID0gIlBlcmNlbnRhZ2UgVkJNIEJhbGxvdHMgVW5kZWxpdmVyZWQiKSArDQogICAgc2NhbGVfZmlsbF9pZGVudGl0eSgpKw0KICAgIHRoZW1lKHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICdncmF5OTUnKSwgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxLCBzaXplID0gNikpKw0KICAgIGdlb21faGxpbmUoeWludGVyY2VwdD1tZWRpYW4oZmwuZGYkcC52Ym1fdW5kZWxpdmVyZWQsIG5hLnJtID0gVCksIGNvbG9yPSJibGFjayIsIGxpbmV0eXBlPSJkYXNoZWQiKSsNCiAgIHNjYWxlX3lfY29udGludW91cyhicmVha3M9cHJldHR5X2JyZWFrcyhuPTUpLCBsYWJlbD1jb21tYSkrDQogIGdlb21faGxpbmUoeWludGVyY2VwdD1tZWFuKGZsLmRmJHAudmJtX3VuZGVsaXZlcmVkLCBuYS5ybSA9IFQpLCBjb2xvcj0iZGVlcHNreWJsdWU0IiwgbGluZXR5cGU9InNvbGlkIikNCg0KZ2dwbG90bHkodnUsIHRvb2x0aXAgPSBjKCJjb3VudHkiLCAicC52Ym1fdW5kZWxpdmVyZWQiKSwgd2lkdGggPSA3OTAsIGhlaWdodCA9IDQ3NSkNCg0KDQpgYGANCg0KVG90YWwgbnVtYmVyIG9mIGRvbWVzdGljLCBjaXZpbGlhbiBieS1tYWlsIGJhbGxvdHMgcmVqZWN0ZWQ6DQpgYGB7ciwgZWNobz1GQUxTRX0NCmZvcm1hdEMoc3VtKGZsLmRmJG1haWxfcmVqZWN0ZWQsIG5hLnJtID0gVCksIGZvcm1hdD0iZCIsIGJpZy5tYXJrPSIsIikNCmBgYA0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCmZsLnJlajwtbWVsdChmbC5kZiwgaWQudmFycyA9ICJtYXRjaC5jb3VudHkiLCBtZWFzdXJlLnZhcnMgPSBjKCJyZWpfZGVhZGxpbmUiLCAicmVqX3ZvdGVyc2lnIiwgInJlal93aXRzaWciLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVqX25vbWF0Y2giLCAicmVqX0Vvc2lnIiwgInJlal9lbnYiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVqX21pc3NpbmciLCAicmVqX3Vuc2VhbGVkIiwgInJlal9ub2FkZHkiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlal9tdWx0aXBsZSIsICJyZWpfZGVjZWFzZWQiLCAicmVqX3ZvdGVkIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVqX25vSUQiLCAicmVqX25vYXBwIikpDQoNCmdncGxvdChmbC5yZWosIGFlcyh2YXJpYWJsZSwgdmFsdWUpKSsNCiAgICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikrDQogIGxhYnMoeCA9ICIiLCB5ID0gIiIsIHRpdGxlID0gIkVBVlMgMjAxOCIsIHN1YnRpdGxlID0gIlJlamVjdGVkIFZCTSBiYWxsb3RzIGJ5IHJlamVjdGlvbiB0eXBlIikgKw0KICAgIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gMzAsIGhqdXN0ID0gMSkpKw0KICAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcz1wcmV0dHlfYnJlYWtzKG49NSksIGxhYmVsPWNvbW1hKSsNCiAgICBzY2FsZV94X2Rpc2NyZXRlKGxhYmVscz1jKCJyZWpfZGVhZGxpbmUiID0gIk1pc3NlZCBEZWFkbGluZSIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWpfdm90ZXJzaWciID0gIk5vIFZvdGVyIFNpZ25hdHVyZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlal93aXRzaWciID0gIk5vIFdpdG5lc3MgU2lnbmF0dXJlIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlal9ub21hdGNoIiA9ICJTaWduYXR1cmUgRG9lc24ndCBNYXRjaCIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWpfRW9zaWciID0gIk5vIEVPIFNpZ25hdHVyZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlal9lbnYiID0gIlVub2ZmaWNpYWwgRW52ZWxvcGUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWpfbWlzc2luZyIgPSAiTWlzc2luZyBmcm9tIEVudmVsb3BlIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlal91bnNlYWxlZCIgPSAiRW52ZWxvcGUgbm90IFNlYWxlZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlal9ub2FkZHkiID0gIk5vIFJlc2lkZW50IEFkZHJlc3MiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWpfbXVsdGlwbGUiID0gIk11bHRpcGxlIEJhbGxvdHMiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWpfZGVjZWFzZWQiID0gIlZvdGVyIERlY2Vhc2VkIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlal92b3RlZCIgPSAiTm9uLW1hdGNoaW5nIFNpZ25hdHVyZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlal9ub0lEIiA9ICJObyBWb3RlciBTaWduYXR1cmUiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVqX25vYXBwIiA9ICJObyBBcHBsaWNhdGlvbiBvbiBSZWNvcmQiKSkNCmBgYA0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCnZyPC1nZ3Bsb3QoZmwuZGYsIGFlcyh4ID0gcmVvcmRlcihjb3VudHksIG1haWxfcmVqZWN0ZWQpLCBtYWlsX3JlamVjdGVkLCBjb3VudHk9Y291bnR5LCAiVkJNIEJhbGxvdHMgUmVqZWN0ZWQiPW1haWxfcmVqZWN0ZWQpKSsNCiAgICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKw0KICAgIGxhYnMoeCA9ICIiLCB5ID0gIiIsIHRpdGxlID0gIlZCTSBCYWxsb3RzIFJlamVjdGVkIikgKw0KICAgIHNjYWxlX2ZpbGxfaWRlbnRpdHkoKSsNCiAgICB0aGVtZShwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGZpbGwgPSAnZ3JheTk1JyksIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gOTAsIGhqdXN0ID0gMSwgc2l6ZSA9IDYpKSsNCiAgICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQ9bWVkaWFuKGZsLmRmJG1haWxfcmVqZWN0ZWQsIG5hLnJtID0gVCksIGNvbG9yPSJibGFjayIsIGxpbmV0eXBlPSJkYXNoZWQiKSsNCiAgIHNjYWxlX3lfY29udGludW91cyhicmVha3M9cHJldHR5X2JyZWFrcyhuPTUpLCBsYWJlbD1jb21tYSkrDQogIGdlb21faGxpbmUoeWludGVyY2VwdD1tZWFuKGZsLmRmJG1haWxfcmVqZWN0ZWQsIG5hLnJtID0gVCksIGNvbG9yPSJkZWVwc2t5Ymx1ZTQiLCBsaW5ldHlwZT0ic29saWQiKQ0KDQpnZ3Bsb3RseSh2ciwgdG9vbHRpcCA9IGMoImNvdW50eSIsICJtYWlsX3JlamVjdGVkIiksIHdpZHRoID0gNzkwLCBoZWlnaHQgPSA0NzUpDQoNCg0KYGBgDQoNCg0KDQoNCg0K